/*
 * Copyright (c) 2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// RENAMED: es2panda_ContextState -> Es2pandaContextState
export enum Es2pandaContextState {
  ES2PANDA_STATE_NEW = 0,
  ES2PANDA_STATE_PARSED = 1,
  ES2PANDA_STATE_BOUND = 2,
  ES2PANDA_STATE_CHECKED = 3,
  ES2PANDA_STATE_LOWERED = 4,
  ES2PANDA_STATE_ASM_GENERATED = 5,
  ES2PANDA_STATE_BIN_GENERATED = 6,
  ES2PANDA_STATE_ERROR = 7
}
export enum Es2pandaScopeType {
  SCOPE_TYPE_PARAM = 0,
  SCOPE_TYPE_CATCH_PARAM = 1,
  SCOPE_TYPE_FUNCTION_PARAM = 2,
  SCOPE_TYPE_CATCH = 3,
  SCOPE_TYPE_CLASS = 4,
  SCOPE_TYPE_ANNOTATION = 5,
  SCOPE_TYPE_ANNOTATIONPARAMSCOPE = 6,
  SCOPE_TYPE_LOCAL = 7,
  SCOPE_TYPE_LOCAL_WITH_ALIAS = 8,
  SCOPE_TYPE_LOOP = 9,
  SCOPE_TYPE_LOOP_DECL = 10,
  SCOPE_TYPE_FUNCTION = 11,
  SCOPE_TYPE_GLOBAL = 12,
  SCOPE_TYPE_MODULE = 13
}

export enum Es2pandaResolveBindingOptions {
  RESOLVE_BINDING_OPTIONS_BINDINGS = 0,
  RESOLVE_BINDING_OPTIONS_INTERFACES = 1,
  RESOLVE_BINDING_OPTIONS_VARIABLES = 2,
  RESOLVE_BINDING_OPTIONS_METHODS = 4,
  RESOLVE_BINDING_OPTIONS_DECLARATION = 8,
  RESOLVE_BINDING_OPTIONS_STATIC_VARIABLES = 16,
  RESOLVE_BINDING_OPTIONS_STATIC_METHODS = 32,
  RESOLVE_BINDING_OPTIONS_STATIC_DECLARATION = 64,
  RESOLVE_BINDING_OPTIONS_TYPE_ALIASES = 128,
  RESOLVE_BINDING_OPTIONS_ALL = 256,
  RESOLVE_BINDING_OPTIONS_ALL_NON_TYPE = 512,
  RESOLVE_BINDING_OPTIONS_ALL_VARIABLES = 18,
  RESOLVE_BINDING_OPTIONS_ALL_METHOD = 36,
  RESOLVE_BINDING_OPTIONS_ALL_DECLARATION = 72,
  RESOLVE_BINDING_OPTIONS_ALL_STATIC = 112,
  RESOLVE_BINDING_OPTIONS_ALL_NON_STATIC = 14,
  RESOLVE_BINDING_OPTIONS_LAST = 128
}

export enum Es2pandaId {
  ID_AS = 0,
  ID_JS = 1,
  ID_TS = 2,
  ID_ETS = 3,
  ID_COUNT = 4
}

export enum Es2pandaCheckerStatus {
  CHECKER_STATUS_NO_OPTS = 0,
  CHECKER_STATUS_FORCE_TUPLE = 1,
  CHECKER_STATUS_IN_CONST_CONTEXT = 2,
  CHECKER_STATUS_KEEP_LITERAL_TYPE = 4,
  CHECKER_STATUS_IN_PARAMETER = 8,
  CHECKER_STATUS_IN_CLASS = 16,
  CHECKER_STATUS_IN_INTERFACE = 32,
  CHECKER_STATUS_IN_ABSTRACT = 64,
  CHECKER_STATUS_IN_STATIC_CONTEXT = 128,
  CHECKER_STATUS_IN_CONSTRUCTOR = 256,
  CHECKER_STATUS_IN_STATIC_BLOCK = 512,
  CHECKER_STATUS_INNER_CLASS = 1024,
  CHECKER_STATUS_IN_ENUM = 2048,
  CHECKER_STATUS_BUILTINS_INITIALIZED = 4096,
  CHECKER_STATUS_IN_LAMBDA = 8192,
  CHECKER_STATUS_IGNORE_VISIBILITY = 16384,
  CHECKER_STATUS_IN_INSTANCE_EXTENSION_METHOD = 32768,
  CHECKER_STATUS_IN_LOCAL_CLASS = 65536,
  CHECKER_STATUS_IN_INSTANCEOF_CONTEXT = 131072,
  CHECKER_STATUS_IN_TEST_EXPRESSION = 262144,
  CHECKER_STATUS_IN_LOOP = 524288,
  CHECKER_STATUS_MEET_RETURN = 1048576,
  CHECKER_STATUS_MEET_BREAK = 2097152,
  CHECKER_STATUS_MEET_CONTINUE = 4194304,
  CHECKER_STATUS_MEET_THROW = 8388608,
  CHECKER_STATUS_IN_EXTERNAL = 16777216,
  CHECKER_STATUS_IN_BRIDGE_TEST = 33554432,
  CHECKER_STATUS_IN_GETTER = 67108864,
  CHECKER_STATUS_IN_SETTER = 134217728
}

export enum Es2pandaLexicalScopeType {
  LEXICAL_SCOPE_TYPE_BLOCK = 0,
  LEXICAL_SCOPE_TYPE_STRICT_BLOCK = 1,
  LEXICAL_SCOPE_TYPE_CATCH = 2,
  LEXICAL_SCOPE_TYPE_FUNCTION_PARAM = 3,
  LEXICAL_SCOPE_TYPE_TS_TYPE_LITERAL = 4
}

export enum Es2pandaCompilationMode {
  COMPILATION_MODE_GEN_STD_LIB = 0,
  COMPILATION_MODE_PROJECT = 1,
  COMPILATION_MODE_SINGLE_FILE = 2
}
export enum Es2pandaErrorType {
  ERROR_TYPE_INVALID = 0,
  ERROR_TYPE_GENERIC = 1,
  ERROR_TYPE_SYNTAX = 2,
  ERROR_TYPE_TYPE = 3,
  ERROR_TYPE_ETS_WARNING = 4
}
export enum Es2pandaCheckDecision {
  CHECK_DECISION_CORRECT = 0,
  CHECK_DECISION_INCORRECT = 1
}
export enum Es2pandaCheckAction {
  CHECK_ACTION_CONTINUE = 0,
  CHECK_ACTION_SKIP_SUBTREE = 1
}
